package cn.infrabase;

/**
 * 版本。
 *
 * @author Weimin Gao
 * @since 1.0.0
 **/
public abstract class Version {

	/**
	 * 序列化唯一标识。
	 */
	public static long SID = Long.parseLong(full().replaceAll("[.]", ""));

	/**
	 * 返回主版本号。
	 *
	 * @return 主版本号。
	 */
	public static int major() {
		return 1;
	}

	/**
	 * 返回次版本号。
	 *
	 * @return 次版本号。
	 */
	public static int minor() {
		return 0;
	}

	/**
	 * 返回修订号。
	 *
	 * @return 修订号。
	 */
	public static int patch() {
		return 0;
	}

	/**
	 * 返回X.Y.Z全版本号，格式如：1.0.0。
	 *
	 * @return 全版本号。
	 */
	public static String full() {
		return major() + "." + minor() + "." + patch();
	}
}
